#************************ istruzioni per la creazione del make *********************************
#

  

OUTDIR := Release/
PARSEDIR := parser/
LIBDIR := libraries/
IDIR := includes/
TESTDIR := tests/
OBJDIR := objects/
MAINDIR := mainfiles/
TABOODIR := taboo/
SOLDIR := solution/
LOSDIR := los/
STMDIR := stm/
LTMDIR := ltm/
GRAPHDIR := graph/
WARNING := -Wall -Wextra -Wmissing-prototypes -Wstrict-prototypes -Wold-style-definition

#regola base per costruire l'intero progetto
all: header documentation totest executables 

#per costruire la documentazione
documentation:
	#++++++++++++++++++++++ DOCUMENTAZIONE ++++++++++++++++++++++++++++
	ln -f -s -T ../documentation/html/index.html enduserDocumentation/HTMLDocumentation.html

#inserire qui i file oggetto che si vuole testare ma che non si vogliono ancora inserire nell'intero progetto
totest: 

#inserire qui gli eseguibili
executables: includeTest inittest parsertest correctorTest correctorTest2\
			 vehiclePathTest solutionTest TabooListMatrixTest ucarpp bmpTest\
			 bmpTest2 graphCompletetionTest STM1 STMTest2 patTest STMTest3\
			 swapTest1 swapTest2 constructiveTest generateDynamicConstructiveTest

#inserire qui tutti i file di header
header: graph.h outputStructs.h solution.h symbols.h\
	 	lexer.h lex-tools.h parser-tools.h edgeID.h tabooState.h\
	 	solution.h statistics.h tabooExpire.h tabooList.h vehiclePath.h vehicleState.h edgeSol.h\
	 	main-tools.h gMatrix.h graphbmp-tools.h ltm.h edgeGraph.h bmp-tools.h add.h remove.h los.h\
	 	operations.h stm.h vectorParam.h swap.h edgeIDEvaluator.h\
	 	ALGConfiguration.h configparser.h parser.h fMatrix.h LTMFrequencies.h LTMConfiguration.h
	 	
#usare questa regola quando si vuole pulire l'intera struttura da file derivati (come gli .o)
clean:
	rm -v -f $(OUTDIR)*
	rm -v -f $(OBJDIR)*
	rm -v -f $(LIBDIR)*
	rm -v -f $(IDIR)*
	rm -v -f enduserDocumentation/HTMLDocumentation.html
	
#********************************** MACROOBJECTS FILES ***************************************************************

SOLUTIONFILES=solution.o vehicleState.o vehiclePath.o edgeSol.o gMatrix.o
SOLUTIONOBJECTS= $(OBJDIR)solution.o $(OBJDIR)vehicleState.o $(OBJDIR)vehiclePath.o $(OBJDIR)edgeSol.o $(OBJDIR)gMatrix.o

PARSERFILES=lexer.o parser-tools.o parser.o lex-tools.o configparser.o ALGConfiguration.o
PARSEROBJECTS=$(OBJDIR)lexer.o $(OBJDIR)parser-tools.o $(OBJDIR)parser.o $(OBJDIR)lex-tools.o $(OBJDIR)configparser.o $(OBJDIR)ALGConfiguration.o

TOOLSFILES=main-tools.o edgeID.o
TOOLSOBJECTS=$(OBJDIR)main-tools.o $(OBJDIR)edgeID.o

GRAPHFILES=graph.o edgeGraph.o
GRAPHOBJECTS=$(OBJDIR)graph.o $(OBJDIR)edgeGraph.o

TABOOFILES=tabooExpire.o tabooList.o tabooState.o
TABOOOBJECTS=$(OBJDIR)tabooExpire.o $(OBJDIR)tabooList.o $(OBJDIR)tabooState.o

ALGFILES= add.o remove.o los.o ltm.o operations.o stm.o vectorParam.o swap.o edgeIDEvaluator.o fMatrix.o LTMFrequencies.o LTMConfiguration.o
ALGOBJECTS=$(OBJDIR)add.o $(OBJDIR)remove.o $(OBJDIR)los.o $(OBJDIR)ltm.o $(OBJDIR)operations.o $(OBJDIR)stm.o $(OBJDIR)vectorParam.o $(OBJDIR)swap.o $(OBJDIR)edgeIDEvaluator.o $(OBJDIR)fMatrix.o $(OBJDIR)LTMFrequencies.o $(OBJDIR)LTMConfiguration.o

BMPFILES=graphbmp-tools.o bmp-tools.o
BMPOBJECTS=$(OBJDIR)graphbmp-tools.o $(OBJDIR)bmp-tools.o

ALLFILES=$(SOLUTIONFILES) $(PARSERFILES) $(GRAPHFILES) $(TABOOFILES) $(TOOLSFILES) $(ALGFILES) $(BMPFILES)
ALLOBJECTS=$(SOLUTIONOBJECTS) $(PARSEROBJECTS) $(GRAPHOBJECTS) $(TABOOOBJECTS) $(TOOLSOBJECTS) $(ALGOBJECTS) $(BMPOBJECTS) -lm
	
# ***************************** APPLICATION FILES *********************************************************************

generateDynamicConstructiveTest: generateDynamicConstructiveTest.o $(ALLFILES)
	#***************************** generateDynamicConstructiveTesT *****************************
	gcc -I$(IDIR) -o $(OUTDIR)generateDynamicConstructiveTest $(OBJDIR)generateDynamicConstructiveTest.o $(ALLOBJECTS)

constructiveTest: constructiveTest.o $(ALLFILES)
	gcc -I$(IDIR) -o $(OUTDIR)constructiveTest $(OBJDIR)constructiveTest.o $(ALLOBJECTS)

swapTest2: swapTest2.o $(ALLFILES)
	#****************************** SWAPTEST2 ****************************************
	gcc -I$(IDIR) -o $(OUTDIR)swapTest2 $(OBJDIR)swapTest2.o $(ALLOBJECTS)

swapTest1: swapTest1.o $(ALLFILES)
	#****************************** SWAPTEST1 ****************************************
	gcc -I$(IDIR) -o $(OUTDIR)swapTest1 $(OBJDIR)swapTest1.o $(ALLOBJECTS)

STMTest3: STMTest3.o $(ALLFILES)
	#****************************** STMTEST3 ****************************************
	gcc -I$(IDIR) -o $(OUTDIR)STMTest3 $(OBJDIR)STMTest3.o $(ALLOBJECTS)

STMTest2: STMTest2.o $(ALLFILES)
	#****************************** STMTEST2 ****************************************
	gcc -I$(IDIR) -o $(OUTDIR)STMTest2 $(OBJDIR)STMTest2.o $(ALLOBJECTS)
	
STM1: STM1.o $(ALLFILES)
	#****************************** STM1 ****************************************
	gcc -I$(IDIR) -o $(OUTDIR)STM1 $(OBJDIR)STM1.o $(ALLOBJECTS)

graphCompletetionTest: graphCompletetionTest.o $(PARSERFILES) $(GRAPHFILES) $(TOOLSFILES)
	#**************************** GRAPHCOMPLETITIONTEST **************************++
	gcc -I$(IDIR) -o $(OUTDIR)graphCompletetionTest $(OBJDIR)graphCompletetionTest.o $(PARSEROBJECTS) $(GRAPHOBJECTS) $(TOOLSOBJECTS)

bmpTest2: bmpTest2.o $(BMPFILES) $(TOOLSFILES) $(SOLUTIONFILES) $(PARSERFILES) $(GRAPHFILES) $(ALGFILES) $(TABOOFILES)
	#**************************** BMPTEST2 *********************************
	gcc -I$(IDIR) -o $(OUTDIR)bmpTest2 $(OBJDIR)bmpTest2.o $(BMPOBJECTS) $(TOOLSOBJECTS) $(SOLUTIONOBJECTS) $(PARSEROBJECTS) $(GRAPHOBJECTS) $(ALGOBJECTS) $(TABOOOBJECTS) -lm

bmpTest: bmpTest.o $(BMPFILES) $(TOOLSFILES) $(SOLUTIONFILES)
	#***************************** BMPTEST ********************************
	gcc -I$(IDIR) -o $(OUTDIR)bmpTest $(OBJDIR)bmpTest.o $(BMPOBJECTS) $(TOOLSOBJECTS) $(SOLUTIONOBJECTS) -lm

ucarpp: ucarpp.o $(ALLFILES)
	#****************************** UCARPP ************************************+
	gcc -I$(IDIR) -o $(OUTDIR)ucarpp $(OBJDIR)ucarpp.o $(ALLOBJECTS)

solutionTest: solutionTest.o $(SOLUTIONFILES) $(TOOLSFILES)  $(GRAPHFILES) $(BMPFILES)
	#***************** SOLUTIONTEST ************************
	gcc -I$(IDIR) -o $(OUTDIR)solutionTest $(OBJDIR)solutionTest.o $(SOLUTIONOBJECTS) $(TOOLSOBJECTS) $(GRAPHOBJECTS) $(BMPOBJECTS) -lm

inittest: inittest.o $(ALLFILES)
	#***************** INITTEST ****************************
	gcc -I$(IDIR) -o $(OUTDIR)inittest $(OBJDIR)inittest.o $(ALLOBJECTS)

includeTest: includeTest.o $(GRAPHFILES) $(SOLUTIONFILES) $(TOOLSFILES)
	#***************** INCLUDETEST ****************************
	gcc -o $(OUTDIR)includeTest $(OBJDIR)includeTest.o $(GRAPHOBJECTS) $(SOLUTIONOBJECTS) $(TOOLSOBJECTS)
	
parsertest: parsertest.o $(TOOLSFILES) $(GRAPHFILES) $(PARSERFILES)
	#***************** PARSERTEST ****************************
	gcc -I$(IDIR) -o $(OUTDIR)parsertest $(OBJDIR)parsertest.o $(TOOLSOBJECTS) $(GRAPHOBJECTS) $(PARSEROBJECTS) 

correctorTest: correctorTest.o $(TOOLSFILES) $(GRAPHFILES)
	#***************** CORRECTORTEST **************************
	gcc -I$(IDIR) -o $(OUTDIR)correctorTest $(OBJDIR)correctorTest.o $(TOOLSOBJECTS) $(GRAPHOBJECTS)

correctorTest2: correctorTest2.o $(GRAPHFILES) $(TOOLSFILES) $(PARSERFILES)
	#***************** CORRECTORTEST2 **************************
	gcc -I$(IDIR) -o $(OUTDIR)correctorTest2 $(OBJDIR)correctorTest2.o $(GRAPHOBJECTS) $(TOOLSOBJECTS) $(PARSEROBJECTS)

TabooListMatrixTest: TabooListMatrixTest.o $(TOOLSFILES) $(TABOOFILES)
	#***************** TABOOLISTMATRIXTEST ************************
	gcc -I$(IDIR) -o $(OUTDIR)TabooListMatrixTest $(OBJDIR)TabooListMatrixTest.o $(TOOLSOBJECTS) $(TABOOOBJECTS)

vehiclePathTest: vehiclePathTest.o $(SOLUTIONFILES) $(TOOLSFILES)
	#***************** VEHICLEPATHTEST ***************************
	gcc -I$(IDIR) -o $(OUTDIR)vehiclePathTest $(OBJDIR)vehiclePathTest.o $(SOLUTIONOBJECTS) $(TOOLSOBJECTS)

patTest: patTest.o $(SOLUTIONFILES) $(PARSERFILES) $(GRAPHFILES) $(TABOOFILES) $(TOOLSFILES) $(ALGFILES) $(BMPFILES)
	#****************************** UCARPP ************************************+
	gcc -I$(IDIR) -o $(OUTDIR)patTest $(OBJDIR)patTest.o $(SOLUTIONOBJECTS) $(PARSEROBJECTS) $(GRAPHOBJECTS) $(TABOOOBJECTS) $(TOOLSOBJECTS) $(ALGOBJECTS) $(BMPOBJECTS) -lm

#********************************** OBJECT FILES ****************************************************************************************

generateDynamicConstructiveTest.o:
	#******************** generateDynamicConstructiveTest.O ************************
	gcc -c -I$(IDIR) -o $(OBJDIR)generateDynamicConstructiveTest.o $(TESTDIR)generateDynamicConstructiveTest.c

LTMConfiguration.o:
	#**************** LTMCONFIGURATION.O ****************
	gcc -c -I$(IDIR) -o $(OBJDIR)LTMConfiguration.o $(LTMDIR)LTMConfiguration.c
constructiveTest.o:
	#**************** CONSTRUCTIVETEST.O ****************
	gcc -c -I$(IDIR) -o $(OBJDIR)constructiveTest.o $(TESTDIR)constructiveTest.c
fMatrix.o:
	#**************** FMATRIX.O ****************LTMConfiguration
	gcc -c -I$(IDIR) -o $(OBJDIR)fMatrix.o $(LTMDIR)fMatrix.c

LTMFrequencies.o:
	#**************** LTMFREQUENCIES.O ****************
	gcc -c -I$(IDIR) -o $(OBJDIR)LTMFrequencies.o $(LTMDIR)LTMFrequencies.c
edgeIDEvaluator.o:
	#**************** EDGEIDEVALUATOR.O ****************
	gcc -c -I$(IDIR) -o $(OBJDIR)edgeIDEvaluator.o $(LOSDIR)edgeIDEvaluator.c
	
swap.o:
	#**************** SWAP.O ****************************
	gcc -c -I$(IDIR) -o $(OBJDIR)swap.o $(LOSDIR)swap.c

swapTest2.o:
	#**************** SWAPTEST2.O ****************************
	gcc -c -I$(IDIR) -o $(OBJDIR)swapTest2.o $(TESTDIR)swapTest2.c

swapTest1.o:
	#**************** SWAPTEST1.O ****************************
	gcc -c -I$(IDIR) -o $(OBJDIR)swapTest1.o $(TESTDIR)swapTest1.c
	
STMTest3.o:
	#**************** STMTEST3.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)STMTest3.o $(TESTDIR)STMTest3.c

STMTest2.o:
	#**************** STMTEST2.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)STMTest2.o $(TESTDIR)STMTest2.c

STM1.o:
	#**************** STM1.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)STM1.o $(TESTDIR)STM1.c

los.o:
	#**************** LOS.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)los.o $(LOSDIR)los.c

add.o:
	#**************** ADD.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)add.o $(LOSDIR)add.c
	
remove.o:
	#**************** REMOVE.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)remove.o $(LOSDIR)remove.c

graphCompletetionTest.o:
	#**************** GRAPHCOMPLETITIONTEST.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)graphCompletetionTest.o $(TESTDIR)graphCompletetionTest.c

vectorParam.o:
	#**************** STM-MATH-TOOLS.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)vectorParam.o $(STMDIR)vectorParam.c
	
stm.o:
	#**************** STM.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)stm.o $(STMDIR)stm.c

edgeGraph.o:
	#**************** EDGEGRAPH.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)edgeGraph.o $(GRAPHDIR)edgeGraph.c

bmp-tools.o:
	#**************** BMP-TOOLS.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)bmp-tools.o bmpHandler/bmp-tools.c
bmpTest2.o:
	#**************** BMPTEST2.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)bmpTest2.o $(TESTDIR)bmpTest2.c

bmpTest.o:
	#**************** BMPTEST.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)bmpTest.o $(TESTDIR)bmpTest.c

graphbmp-tools.o:
	#**************** GRAPHBMP-TOOLS.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)graphbmp-tools.o bmpHandler/graphbmp-tools.c

ucarpp.o:
	#**************** UCARPP.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)ucarpp.o mainProgram/ucarpp.c

includeTest.o:
	#**************** INCLUDETEST.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)includeTest.o $(TESTDIR)includeTest.c
	
patTest.o:
	#**************** INCLUDETEST.O ***************
	gcc -c -I$(IDIR) -o $(OBJDIR)patTest.o $(TESTDIR)patTest.c
	
gMatrix.o:
	#**************** GMATRIX.O ******************
	gcc -c -I$(IDIR) -o $(OBJDIR)gMatrix.o $(SOLDIR)gMatrix.c

ltm.o:
	#***************** LTM.O **************************
	gcc -c -I$(IDIR) -o $(OBJDIR)ltm.o $(LTMDIR)ltm.c
vehiclePathTest.o:
	#***************** VEHICLEPATHTEST.O **************************
	gcc -c -I$(IDIR) -o $(OBJDIR)vehiclePathTest.o $(TESTDIR)vehiclePathTest.c
	
vehiclePath.o:
	#***************** VEHICLEPATH.O **************************
	gcc -c -I$(IDIR) -o $(OBJDIR)vehiclePath.o $(SOLDIR)vehiclePath.c
	
vehicleState.o:
	#***************** VEHICLESTATE.O **************************
	gcc -c -I$(IDIR) -o $(OBJDIR)vehicleState.o $(SOLDIR)vehicleState.c
	
edgeSol.o:
	#***************** EDGESOL.O **************************
	gcc -c -I$(IDIR) -o $(OBJDIR)edgeSol.o $(SOLDIR)edgeSol.c

tabooExpire.o:
	#***************** TABOOEXPIRE.O *******************************
	gcc -c -I$(IDIR) -o $(OBJDIR)tabooExpire.o $(TABOODIR)tabooExpire.c

tabooList.o:
	#***************** TABOOLIST.O ***************************
	gcc -c -I$(IDIR) -o $(OBJDIR)tabooList.o $(TABOODIR)tabooList.c

tabooState.o:
	#***************** TABOO.O ***********************************
	gcc -c -I$(IDIR) -o $(OBJDIR)tabooState.o $(TABOODIR)tabooState.c

TabooListMatrixTest.o:
	#***************** TABOOLISTMATRIXTEST.O ******************
	gcc -c -I$(IDIR) -o $(OBJDIR)TabooListMatrixTest.o $(TESTDIR)TabooListMatrixTest.c

solution.o:
	#***************** SOLUTION.O *********************
	gcc -c -I$(IDIR) -o $(OBJDIR)solution.o $(SOLDIR)solution.c

solutionTest.o:
	#***************** SOLUTIONTEST.O ************************
	gcc -c -I$(IDIR) -o $(OBJDIR)solutionTest.o $(TESTDIR)solutionTest.c

inittest.o:
	#***************** INITTEST.O ******************************+
	gcc -c -I$(IDIR) -o $(OBJDIR)inittest.o $(TESTDIR)inittest.c

correctorTest.o:
	#***************** CORRECTORTEST.O ******************************
	gcc -c -I$(IDIR) -o $(OBJDIR)correctorTest.o $(TESTDIR)correctorTest.c
	
correctorTest2.o:
	#***************** CORRECTORTEST2.O ******************************
	gcc -c -I$(IDIR) -o $(OBJDIR)correctorTest2.o $(TESTDIR)correctorTest2.c

parsertest.o: symbols.h 
	#***************** PARSERTEST.O ****************************
	gcc -c -I$(IDIR) -o $(OBJDIR)parsertest.o $(TESTDIR)parsertest.c

edgeID.o:
	#***************** EDGEID.O ******************************
	gcc -c -I$(IDIR) -o $(OBJDIR)edgeID.o $(MAINDIR)edgeID.c

graph.o:
	#***************** GRAPH.O ****************************
	gcc -c -I$(IDIR) -o  $(OBJDIR)graph.o $(GRAPHDIR)graph.c 
	
main-tools.o:
	#***************** MAIN-TOOLS.O ****************************
	gcc -c -I$(IDIR) -o $(OBJDIR)main-tools.o $(MAINDIR)main-tools.c 

operations.o:
	#***************** OPERATIONS.O ****************************
	gcc -c -I$(IDIR) -o $(OBJDIR)operations.o $(MAINDIR)operations.c 
	
ALGConfiguration.o:
	#***************** ALGCONFIGURATION.O ***********************
	gcc -c -I$(IDIR) -o $(OBJDIR)ALGConfiguration.o $(MAINDIR)ALGConfiguration.c

configparser.o:
	#***************** CONFIGPARSER.O ************************
	gcc -c -I$(IDIR) -o $(OBJDIR)configparser.o $(PARSEDIR)configparser.c
	
lexer.o:
	#***************** LEXER.O ****************************
	flex -o $(PARSEDIR)lexer.c $(PARSEDIR)lexer.lex
	mv lexer.h $(PARSEDIR)lexer.h
	gcc -c -I$(IDIR) -o $(OBJDIR)lexer.o $(PARSEDIR)lexer.c
	rm -v -f $(PARSEDIR)lexer.c
configlexer.o:
	#***************** CONFIGLEXER.O *********************
	flex -o $(PARSEDIR)configlexer.c $(PARSEDIR)configlexer.lex
	mv configlexer.h $(PARSEDIR)configlexer.h
	gcc -c -I$(IDIR) -o $(OBJDIR)configlexer.o $(PARSEDIR)configlexer.c
	rm -v -f $(PARSEDIR)configlexer.c
lex-tools.o:
	#***************** LEX-TOOLS.O ****************************
	gcc -c -I$(IDIR) -o $(OBJDIR)lex-tools.o $(PARSEDIR)lex-tools.c

parser-tools.o: parser-tools.h lex-tools.h
	#***************** PARSER-TOOLS.O **********************
	gcc -c -I$(IDIR) -o $(OBJDIR)parser-tools.o $(PARSEDIR)parser-tools.c

parser.o: parser-tools.h symbols.h graph.h parser-tools.o
	#***************** PARSER.O ****************************
	gcc -c -I$(IDIR) -o $(OBJDIR)parser.o $(PARSEDIR)parser.c

#******************************** HEADER FILES *************************************************************************************

LTMConfiguration.h:
	ln -f -s -T ../$(LTMDIR)LTMConfiguration.h $(IDIR)LTMConfiguration.h
LTMFrequencies.h:
	ln -f -s -T ../$(LTMDIR)LTMFrequencies.h $(IDIR)LTMFrequencies.h
fMatrix.h:
	ln -f -s -T ../$(LTMDIR)fMatrix.h $(IDIR)fMatrix.h
configparser.h:
	ln -f -s -T ../$(PARSEDIR)configparser.h $(IDIR)configparser.h
ALGConfiguration.h:
	ln -f -s -T ../$(MAINDIR)ALGConfiguration.h $(IDIR)ALGConfiguration.h
edgeIDEvaluator.h:
	ln -f -s -T ../$(LOSDIR)edgeIDEvaluator.h $(IDIR)edgeIDEvaluator.h
swap.h:
	ln -f -s -T ../$(LOSDIR)swap.h $(IDIR)swap.h
los.h:
	ln -f -s -T ../$(LOSDIR)los.h $(IDIR)los.h
add.h:
	ln -f -s -T ../$(LOSDIR)add.h $(IDIR)add.h
remove.h:
	ln -f -s -T ../$(LOSDIR)remove.h $(IDIR)remove.h
stm.h:
	ln -f -s -T ../$(STMDIR)stm.h $(IDIR)stm.h
vectorParam.h:
	ln -f -s -T ../$(STMDIR)vectorParam.h $(IDIR)vectorParam.h
operations.h:
	ln -f -s -T ../$(MAINDIR)operations.h $(IDIR)operations.h
edgeGraph.h:
	ln -f -s -T ../$(GRAPHDIR)edgeGraph.h $(IDIR)edgeGraph.h
main-tools.h:
	ln -f -s -T ../$(MAINDIR)main-tools.h $(IDIR)main-tools.h
graph.h:
	ln -f -s -T ../$(GRAPHDIR)graph.h $(IDIR)graph.h
outputStructs.h:
	ln -f -s -T ../$(MAINDIR)outputStructs.h $(IDIR)outputStructs.h
statistics.h:
	ln -f -s -T ../$(MAINDIR)statistics.h $(IDIR)statistics.h
edgeID.h:
	ln -f -s -T ../$(MAINDIR)edgeID.h $(IDIR)edgeID.h
solution.h:
	ln -f -s -T ../$(SOLDIR)solution.h $(IDIR)solution.h
symbols.h:
	ln -f -s -T ../$(PARSEDIR)symbols.h $(IDIR)symbols.h
lexer.h:
	ln -f -s -T ../$(PARSEDIR)lexer.h $(IDIR)lexer.h
lex-tools.h:
	ln -f -s -T ../$(PARSEDIR)lex-tools.h $(IDIR)lex-tools.h
parser.h:
	ln -f -s -T ../$(PARSEDIR)parser.h $(IDIR)parser.h
parser-tools.h:
	ln -f -s -T ../$(PARSEDIR)parser-tools.h $(IDIR)parser-tools.h
tabooState.h:
	ln -f -s -T ../$(TABOODIR)tabooState.h $(IDIR)tabooState.h
tabooExpire.h:
	ln -f -s -T ../$(TABOODIR)tabooExpire.h $(IDIR)tabooExpire.h
tabooList.h:
	ln -f -s -T ../$(TABOODIR)tabooList.h $(IDIR)tabooList.h
edgeSol.h:
	ln -f -s -T ../$(SOLDIR)edgeSol.h $(IDIR)edgeSol.h
vehiclePath.h:
	ln -f -s -T ../$(SOLDIR)vehiclePath.h $(IDIR)vehiclePath.h
vehicleState.h:
	ln -f -s -T ../$(SOLDIR)vehicleState.h $(IDIR)vehicleState.h
ltm.h:
	ln -f -s -T ../$(LTMDIR)ltm.h $(IDIR)ltm.h
gMatrix.h:
	ln -f -s -T ../$(SOLDIR)gMatrix.h $(IDIR)gMatrix.h
graphbmp-tools.h:
	ln -f -s -T ../bmpHandler/graphbmp-tools.h $(IDIR)graphbmp-tools.h
bmp-tools.h:
	ln -f -s -T ../bmpHandler/bmp-tools.h $(IDIR)bmp-tools.h